#pragma region Copyright
/// <copyright>
/// Copyright (c) 2007 Ilia Shramko.
/// Released under the terms of the GNU Lesser General Public License.
/// </copyright>
#pragma endregion

#pragma once

#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN		// Exclude rarely-used stuff from Windows headers
#endif

// Modify the following defines if you have to target a platform prior to the ones specified below.
// Refer to MSDN for the latest info on corresponding values for different platforms.
#ifndef WINVER				// Allow use of features specific to Windows 95 and Windows NT 4 or later.
#define WINVER 0x0500		// Change this to the appropriate value to target Windows 98 and Windows 2000 or later.
#endif

#ifndef _WIN32_WINNT		// Allow use of features specific to Windows NT 4 or later.
#define _WIN32_WINNT 0x0500	// Change this to the appropriate value to target Windows 2000 or later.
#endif						

#ifndef _WIN32_WINDOWS		// Allow use of features specific to Windows 98 or later.
#define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later.
#endif

#ifndef _WIN32_IE			// Allow use of features specific to IE 4.0 or later.
#define _WIN32_IE 0x0400	// Change this to the appropriate value to target IE 5.0 or later.
#endif


//<win32>
#include <windows.h>
#include <winuser.h>

#include <mshtml.h>
#include <exdispid.h>
#include <dispex.h>

#include <gdiplus.h>
#include <tlhelp32.h>
//</win32>


//<atl-wtl>
#define _ATL_DEBUG_INTERFACES
#define _ATL_DEBUG_QI

#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS	// some CString constructors will be explicit

#define _AFX_NO_OLE_SUPPORT
#define _AFX_NO_DB_SUPPORT
#define _AFX_NO_DAO_SUPPORT
#define _AFX_NO_AFXCMN_SUPPORT

#ifndef SIZEOF_ARRAY
    #define SIZEOF_ARRAY(ar)        (sizeof(ar)/sizeof((ar)[0]))
#endif // !defined(SIZEOF_ARRAY)

#pragma warning(push)
#pragma warning(disable: 4512)
#include <atltrace.h>
#pragma warning(pop)

#define _WTL_NO_CSTRING
//#define _WTL_USE_CSTRING

#include <cstringt.h>
#include <atlstr.h>
#include <atlsync.h>
#include <atltypes.h>
#include <atlsafe.h>
#include <atlbase.h>
#include <atlapp.h>
#include <atluser.h>
#include <atlgdi.h>
#include <atlcrack.h>
#include <atlcomcli.h>
#include <atlcomtime.h>
#include <atlsimpcoll.h>

#include <atlctrls.h>
#include <atlctl.h>
//</atl-wtl>

//<dxtransforms>
#pragma warning(push)
#pragma warning(disable: 4100) // 'identifier' : unreferenced formal parameter
#include <dxtrans.h>
#include <dtbase.h>	// IE6 Library
#pragma warning(pop)
//</dxtransforms>


#pragma warning(disable: 4100) // 'identifier' : unreferenced formal parameter
#pragma warning(disable: 4482) // nonstandard extension used: enum 'enum' used in qualified name

extern void CheckThread();

#define TRACEON
#ifdef TRACEON
	#define TRACE(x) x
#else
	#define TRACE(x)
#endif

#include "SharedMemory\SharedMemory.h"

#include "Resource.h"

// OSH Type Library
#pragma warning(push)
#pragma warning(disable: 4192) // automatically excluding 'name' while importing type library 'library'
#import "libid:A286691E-0C8B-42fd-A170-0F020F1010BC" raw_interfaces_only, rename_namespace("OSHLibrary"), exclude("_SYSTEMTIME")
#pragma warning(pop)

#include "Tracing.h"
#include "IConnectionPointGITImpl.h"
#include "Utils.h"
#include "WindowHookHandle.h"

#include "Module.h"
#include "HttpHeaderCollection.h"
#include "HttpRequest.h"
#include "HttpResponse.h"
#include "OSHProtocolHandler.h"
#include "OSHProtocol.h"

#include "OSHBitmap.h"
#include "OSHSource.h"
#include "OSHClient.h"

#include "OSHTransform.h"
